home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / sound / sample20.zip / TURBMOUS.PAS < prev    next >
Pascal/Delphi Source File  |  1989-03-31  |  4KB  |  231 lines

  1.  
  2. { Functions and subroutines for use with the PC Mouse.
  3.  
  4.  
  5.    Converted to TP4 unit by Rowan McKenzie  5/3/89 from Turbmous.pas}
  6.  
  7.  
  8. Unit turbmous;
  9.  
  10. Interface
  11.  
  12.  
  13. Uses dos;
  14.  
  15. Function MsMouse : Boolean;
  16. Procedure Reset_mouse;            { resets mouse internal variables }
  17. Procedure Show_mouse;             { displays the mouse cursor on the screen }
  18. Procedure Hide_mouse;             { Hides the mouse cursor on the screen }
  19. Procedure Get_mouse_status(Var m2, m3, m4 : Integer);
  20. Procedure Put_mouse(x, y : Integer);
  21. Procedure Get_mouse_button_pressed(Var m1, m2, m3, m4 : Integer);
  22. Procedure Get_mouse_button_released(Var m1, m2, m3, m4 : Integer);
  23. Procedure Set_mouse_X_range(Min, Max : Integer);
  24. Procedure Set_mouse_Y_range(Min, Max : Integer);
  25. Procedure Set_Graphics_Icon(Var xspot, yspot, icon_pointer : Integer);
  26. Procedure Set_text_cursor(cursor_type, start, stop : Integer);
  27. Procedure Mouse_motion(Var xcounter, ycounter : Integer);
  28. Procedure mouse_mickeys(x, y : Integer);
  29. Procedure mouse_DST(mickeys : Integer);
  30.  
  31. Implementation
  32.  
  33.   Function MsMouse : Boolean;
  34.  
  35.   Var
  36.     MouseR         : registers;
  37.  
  38.   Begin
  39.     mouser.ax:=0;
  40.     intr($33,mouser);
  41.     msmouse:=(mouser.ax<>0);
  42.   End;                            { MsMouse }
  43.  
  44.  
  45.   Procedure Reset_mouse;          { resets mouse internal variables }
  46.  
  47.   Var
  48.     MouseR         : registers;
  49.  
  50.   Begin
  51.     MouseR.ax := 0;
  52.     intr($33, MouseR);
  53.   End;
  54.  
  55.  
  56.   Procedure Show_mouse;           { displays the mouse cursor on the screen }
  57.  
  58.   Var
  59.     MouseR         : registers;
  60.  
  61.   Begin
  62.     MouseR.ax := 1;
  63.     intr($33, MouseR);
  64.   End;
  65.  
  66.  
  67.   Procedure Hide_mouse;           { Hides the mouse cursor on the screen }
  68.  
  69.   Var
  70.     MouseR         : registers;
  71.  
  72.   Begin
  73.     MouseR.ax := 2;
  74.     intr($33, MouseR);
  75.   End;
  76.  
  77.  
  78.   Procedure Get_mouse_status(Var m2, m3, m4 : Integer);
  79.  
  80.   Var
  81.     MouseR         : registers;
  82.  
  83.   Begin
  84.     MouseR.ax := 3;
  85.     intr($33, MouseR);
  86.     m2 := MouseR.bx;
  87.     m3 := MouseR.cx;
  88.     m4 := MouseR.dx;
  89.   End;
  90.  
  91.  
  92.   Procedure Put_mouse(x, y : Integer);
  93.  
  94.   Var
  95.     MouseR         : registers;
  96.  
  97.   Begin
  98.     MouseR.ax := 4;
  99.     MouseR.cx := x;
  100.     MouseR.dx := y;
  101.     intr($33, MouseR);
  102.   End;
  103.  
  104.  
  105.   Procedure Get_mouse_button_pressed(Var m1, m2, m3, m4 : Integer);
  106.  
  107.   Var
  108.     MouseR         : registers;
  109.  
  110.   Begin
  111.     MouseR.ax := 5;
  112.     MouseR.bx := m2;
  113.     intr($33, MouseR);
  114.     m1 := MouseR.ax;
  115.     m2 := MouseR.bx;
  116.     m3 := MouseR.cx;
  117.     m4 := MouseR.dx;
  118.   End;
  119.  
  120.  
  121.   Procedure Get_mouse_button_released(Var m1, m2, m3, m4 : Integer);
  122.  
  123.   Var
  124.     MouseR         : registers;
  125.  
  126.   Begin
  127.     MouseR.ax := 6;
  128.     MouseR.bx := m2;
  129.     intr($33, MouseR);
  130.     m1 := MouseR.ax;
  131.     m2 := MouseR.bx;
  132.     m3 := MouseR.cx;
  133.     m4 := MouseR.dx;
  134.   End;
  135.  
  136.  
  137.   Procedure Set_mouse_X_range(Min, Max : Integer);
  138.  
  139.   Var
  140.     MouseR         : registers;
  141.  
  142.   Begin
  143.     MouseR.ax := 7;
  144.     MouseR.cx := Min;
  145.     MouseR.dx := Max;
  146.     intr($33, MouseR);
  147.   End;
  148.  
  149.  
  150.   Procedure Set_mouse_Y_range(Min, Max : Integer);
  151.  
  152.   Var
  153.     MouseR         : registers;
  154.  
  155.   Begin
  156.     MouseR.ax := 8;
  157.     MouseR.cx := Min;
  158.     MouseR.dx := Max;
  159.     intr($33, MouseR);
  160.   End;
  161.  
  162.  
  163.   Procedure Set_Graphics_Icon(Var xspot, yspot, icon_pointer : Integer);
  164.  
  165.     { cga mode only}
  166.  
  167.   Var
  168.     MouseR         : registers;
  169.  
  170.   Begin
  171.     MouseR.ax := 9;
  172.     MouseR.bx := xspot;
  173.     MouseR.cx := yspot;
  174.     MouseR.dx := icon_pointer;
  175.     intr($33, MouseR);
  176.   End;
  177.  
  178.  
  179.   Procedure Set_text_cursor(cursor_type, start, stop : Integer);
  180.  
  181.   Var
  182.     MouseR         : registers;
  183.  
  184.   Begin
  185.     MouseR.ax := 10;
  186.     MouseR.bx := cursor_type;
  187.     MouseR.cx := start;
  188.     MouseR.dx := stop;
  189.     intr($33, MouseR);
  190.   End;
  191.  
  192.  
  193.   Procedure Mouse_motion(Var xcounter, ycounter : Integer);
  194.  
  195.   Var
  196.     MouseR         : registers;
  197.  
  198.   Begin
  199.     MouseR.ax := 11;
  200.     intr($33, MouseR);
  201.     xcounter := MouseR.cx;
  202.     ycounter := MouseR.dx;
  203.   End;
  204.  
  205.  
  206.   Procedure mouse_mickeys(x, y : Integer);
  207.  
  208.   Var
  209.     MouseR         : registers;
  210.  
  211.   Begin
  212.     MouseR.ax := 15;
  213.     MouseR.cx := x;
  214.     MouseR.dx := y;
  215.     intr($33, MouseR);
  216.   End;
  217.  
  218.  
  219.   Procedure mouse_DST(mickeys : Integer);
  220.  
  221.   Var
  222.     MouseR         : registers;
  223.  
  224.   Begin
  225.     MouseR.ax := 19;
  226.     MouseR.dx := mickeys;
  227.     intr($33, MouseR);
  228.   End;
  229.  
  230. End.
  231.